最后于 更新
APO 指标介绍
APO 采用 Prometheus 指标模式进行采集、存储和查询指标,指标实际存储在 VictoriaMetrics 中。
APO 产品使用的指标包含两大部分:自研指标与开源生态指标。
自研指标
APO 通过自研实现了以下指标:
下面分别对各指标进行描述。
接口粒度的请求次数、响应耗时和错误率
指标中包含了服务端处理请求的次数、响应耗时和错误情况(RED),指标名称如下:
- kindling_span_trace_duration_nanoseconds_count:接口粒度的请求总次数
- kindling_span_trace_duration_nanoseconds_sum:接口粒度的响应时间总和
- kindling_span_trace_duration_nanoseconds_bucket:接口粒度的响应耗时分布情况
该指标采用 VictoriaMetrics Histogram 数据类型存储,依据 Histogram 能够计算出请求的耗时分布情况。
指标标签说明
名称 | 含义 | 示例 | 备注 |
---|---|---|---|
pid | 进程ID | 12345 | |
svc_name | 服务名称 | ts-station-service | |
content_key | 请求端点 | StationController#queryForIdBatch | |
is_error | 请求是否错误 | true/false | |
top_span | 是否是链路入口 | true/false | |
node_name | 应用所在主机名 | node-1 | |
container_id | 容器ID的前12位 | 2be6619c26c6 | 仅适用于容器环境 |
pod | Pod 名 | ts-station-service-d465b46c4-vxj2r | 仅适用于 Kubernetes 环境 |
workload_kind | 工作负载类型 | Deployment | 仅适用于 Kubernetes 环境 |
workload_name | 工作负载名 | ts-station-service | 仅适用于 Kubernetes 环境 |
namespace | 命名空间 | default | 仅适用于 Kubernetes 环境 |
数据库请求次数、请求耗时和错误率
该指标从客户端进行统计,含义为某一个应用请求数据库的情况,指标名称如下:
- kindling_db_duration_nanoseconds_count:请求数据库的总次数
- kindling_db_duration_nanoseconds_sum:请求数据库的耗时总和
- kindling_db_duration_nanoseconds_bucket:请求数据库的耗时分布情况
该指标采用 VictoriaMetrics Histogram 数据类型存储,依据 Histogram 能够计算出请求的耗时分布情况。
指标标签说明
名称 | 含义 | 示例 | 备注 |
---|---|---|---|
pid | 进程ID | 12345 | |
svc_name | 服务名称 | ts-station-service | |
name | 收敛后的执行语句 | SELECT ts.route | 格式:“操作名 表名” |
db_name | 数据库名称 | ts | |
db_system | 数据库类型名称 | mysql | |
is_error | 请求是否错误 | true/false | |
node_name | 应用所在主机名 | node-1 | |
container_id | 容器ID的前12位 | 2be6619c26c6 | 仅适用于容器环境 |
pod | Pod 名 | ts-station-service-d465b46c4-vxj2r | 仅适用于 Kubernetes 环境 |
workload_kind | 工作负载类型 | Deployment | 仅适用于 Kubernetes 环境 |
workload_name | 工作负载名 | ts-station-service | 仅适用于 Kubernetes 环境 |
namespace | 命名空间 | default | 仅适用于 Kubernetes 环境 |
接口粒度的北极星因果指标
通过 eBPF 技术将服务端处理单次请求的耗时拆解为完备的资源耗时,包括:
- 在CPU上执行耗时
- kindling_profiling_cpu_duration_nanoseconds_count
- kindling_profiling_cpu_duration_nanoseconds_sum
- kindling_profiling_cpu_duration_nanoseconds_bucket
- 等待调度到CPU上耗时
- kindling_profiling_runq_duration_nanoseconds_count
- kindling_profiling_runq_duration_nanoseconds_sum
- kindling_profiling_runq_duration_nanoseconds_bucket
- 等待 网络IO耗时
- kindling_profiling_net_duration_nanoseconds_count
- kindling_profiling_net_duration_nanoseconds_sum
- kindling_profiling_net_duration_nanoseconds_bucket
- kindling_profiling_epoll_duration_nanoseconds_count
- kindling_profiling_epoll_duration_nanoseconds_sum
- kindling_profiling_epoll_duration_nanoseconds_bucket
- 等待Futex耗时(例如等待锁耗时)
- kindling_profiling_futex_duration_nanoseconds_count
- kindling_profiling_futex_duration_nanoseconds_sum
- kindling_profiling_futex_duration_nanoseconds_bucket
- 等待文件IO耗时
- kindling_profiling_file_duration_nanoseconds_count
- kindling_profiling_file_duration_nanoseconds_sum
- kindling_profiling_file_duration_nanoseconds_bucket
- 等待其他资源耗时(多数情况为发生缺页导致的耗时)。
- kindling_profiling_other_duration_nanoseconds_count
- kindling_profiling_other_duration_nanoseconds_sum
- kindling_profiling_other_duration_nanoseconds_bucket
这些被拆解出的资源耗时指标被称为“北极星指标”。
北极星指标采用 VictoriaMetrics Histogram 数据类型存储,依据 Histogram 能够计算出请求的耗时分布情况。
在北极星指标中,每个指标都包含三个指标,后缀分别为:_count
、_sum
、_bucket
,含义解释:
- Count 指标含义解释:北极星指标的
_count
指标与服务端处理请求次数相同。 - Sum 指标含义解释:将在该资源上发生的耗时累计在一起。
- Bucket 指标含义解释:统计在某个区间内的请求次数。
指标标签说明
名称 | 含义 | 示例 | 备注 |
---|---|---|---|
pid | 进程ID | 12345 | |
svc_name | 服务名称 | ts-station-service | |
content_key | 请求端点 | StationController#queryForIdBatch | |
is_error | 请求是否错误 | true/false | |
top_span | 是否是链路入口 | true/false | |
node_name | 应用所在主机名 | node-1 | |
container_id | 容器ID的前12位 | 2be6619c26c6 | 仅适用于容器环境 |
pod | Pod 名 | ts-station-service-d465b46c4-vxj2r | 仅适用于 Kubernetes 环境 |
workload_kind | 工作负载类型 | Deployment | 仅适用于 Kubernetes 环境 |
workload_name | 工作负载名 | ts-station-service | 仅适用于 Kubernetes 环境 |
namespace | 命名空间 | default | 仅适用于 Kubernetes 环境 |
日志中错误数
- originx_logparser_exception_count_total:日志中出现 Exception 的日志总行数
- originx_logparser_level_count_total:按照日志级别统计的总行数
以上两个指标均为 Counter
类型。